.\"	$OpenBSD: pdisk.8,v 1.18 2010/08/26 17:55:10 jmc Exp $
.\"
.\" Copyright 1996,1997,1998 by Apple Computer, Inc.
.\"              All Rights Reserved
.\"
.\" Permission to use, copy, modify, and distribute this software and
.\" its documentation for any purpose and without fee is hereby granted,
.\" provided that the above copyright notice appears in all copies and
.\" that both the copyright notice and this permission notice appear in
.\" supporting documentation.
.\"
.\" APPLE COMPUTER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
.\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
.\" FOR A PARTICULAR PURPOSE.
.\"
.\" IN NO EVENT SHALL APPLE COMPUTER BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
.\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
.\" NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 26 2010 $
.Dt PDISK 8
.Os
.Sh NAME
.Nm pdisk
.Nd HFS(DPME) partition maintenance program
.Sh SYNOPSIS
.Nm pdisk
.Op Fl hilrv
.Ar disk
.Sh DESCRIPTION
.Nm
is a menu driven program which partitions disks using the standard Apple
disk partitioning scheme described in
.Dq Inside Macintosh: Devices .
It does not support the Intel/DOS partitioning scheme supported by
.Xr fdisk 8 .
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl h
Prints a rather lame set of help messages for the
.Nm
program.
.It Fl i
Causes
.Nm
to go into an interactive mode similar to the Mac OS version of the program.
.It Fl l
List the partition tables for the specified
.Ar disk .
.It Fl r
Prevents
.Nm
from writing to the disk.
.It Fl v
Prints version number of the program.
.It Ar disk
Specify the
.Ar disk
to operate on.
It can be specified either by its full pathname or an abbreviated disk form.
In its abbreviated form, the path to the device, the
.Sq r
denoting
.Dq raw device ,
and the partition letter, can all be omitted.
For example, the first IDE disk can be specified as either
.Pa /dev/rwd0c ,
.Pa /dev/wd0c ,
or
.Ar wd0 .
.El
.Sh COMMAND MODE
The list of commands and their explanations are given below.
.Bl -tag -width "update"
.It Em h
command help
.It Em p
print the partition table
.It Em P
print ordered by base address
.It Em i
initialize partition map
.It Em s
change size of partition map
.It Em c
create new partition (standard
.Ox
type)
.It Em C
create with type also specified
.It Em n
(re)name a partition
.It Em d
delete a partition
.It Em r
reorder partition entry in map
.It Em t
change the type of an existing partition
.It Em w
write the partition table
.It Em q
quit editing (don't save changes)
.El
.Pp
Commands which take arguments prompt for each argument in turn.
You can also type any number of the arguments separated by spaces
and those prompts will be skipped.
The only exception to typeahead are the confirmation prompts on the
.Em i
and
.Em w
commands.
The idea being that if we expect you to confirm the decision we
shouldn't undermine that by allowing you to be precipitate about it.
.Pp
Partitions are always specified by their number,
which is the index of the partition entry in the partition map.
Most of the commands will change the index numbers of all partitions
after the affected partition.
You are advised to print the table as frequently as necessary.
.Pp
Creating more than fifteen partitions is not advised, for
compatibility reasons.
.Pp
The
.Em c
(create new partition) command is the only one with complicated arguments.
The first argument is the base address (in blocks) of the partition.
Besides a raw number, you can also specify a partition number followed
by the letter 'p' to indicate that the first block of the new partition should
be the same as the first block of that existing free space partition.
The second argument is the length of the partition in blocks.
This can be a raw number or can be a partition number followed by the
letter 'p' to use the size of that partition or can be a number followed
by 'k', 'm', or 'g' to indicate the size in kilobytes, megabytes, or gigabytes
respectively.
(These are powers of 1024, of course, not powers of 1000.)
The last argument is the name of the partition.
This can be a single word without quotes, or a string surrounded by
single or double quotes.
The type of the created partition is the correct type for
.Ox .
.Pp
The
.Em C
command is identical to the
.Em c
command, with the addition of a partition type argument after the
other arguments.
.Pp
The
.Em n
(name) command allows the name of a partition to be changed.
The name must not contain any spaces.
Note that the various "Apple_Driver" partitions depend
on the name field for proper functioning.
I am not aware of any other partition types with this limitation.
.Pp
The
.Em r
(reorder) command allows the index number of partitions to be changed.
The index numbers are constrained to be a contiguous sequence.
.Pp
The
.Em t
(change type) command allows the type of an existing partition to be changed.
Examples of valid partition types are: Apple_Free, Apple_HFS, and
.Ox .
.Pp
The
.Em i
(initialize) command prompts for the size of the disk.
This was done to get around a bug in the kernel where it reports the wrong
size for the disk.
.Pp
The
.Em w
(write) command does write the partition map out,
but there is currently a bug in the interaction between the
disk and the kernel where
.Nm disklabel
.Fl c
.Ar disk
must be issued to cause the kernel to reinterpret the new label.
.Sh SEE ALSO
.Xr disklabel 8 ,
.Xr fdisk 8 ,
.Xr newfs 8
.Sh HISTORY
The
.Nm
utility was originally developed for MkLinux.
.Sh AUTHORS
.An Eryk Vershen
.Sh BUGS
Some people believe there should really be just one disk partitioning utility.
.Pp
.Nm
should be able to create HFS partitions that work.
.Pp
Filesystem volume names are out of place in a partition utility.
This utility supports HFS volume names, but not volume names
of any other filesystem types.
.Pp
Even more help should be available during user input.
